mscJNeuralNet.connectors
Interface INetConnector
- All Known Implementing Classes:
- RandomNetConnector, RandomSymmetryBreakingNetConnector, WesselsBarnardNetConnector
- public interface INetConnector
Schnittstelle für alle Klassen, welche die Kantengewichte eines KNN initialisieren.
Es existieren verschiedene Algorithmen, um den Initialwert eines
Kantengewichts so zu bestimmen, dass weder ein Lernverfahren in einem lokalen
Minima hängenbleibt, noch die Dimensionalität der Gewichtsmatrix nicht voll ausgeschöpft wird.
Beispiel für ein bekanntes Problem, das die Leistungsfähigkeit eines KNN einschränkt ist
das Symmetrie-Problem, bei dem bestimmte Kantengewichtswerte ein lernen verhindern.
Entsprechend gibt es "Symmetrybreaking" Algorithmen, mit denen solche Gewichtskonstellationen
verhindert werden sollen.
In der aktuellen Version dieser API werden lediglich Feedforward-Netze
ohne Shortcut-Verbindungen unterstützt. Daher sollte der Connector auch nur die
jeweiligen Gewichte initialisieren.
Am einfachsten werden die BIAS und die restlichen Gewichte getrennt initialisiert.
Zuerst werden die BIAS-Werte initalisiert:
// first connect BIAS to all but inputlayer
for (int lInputtingLayer = 1;
lInputtingLayer
Hierbei zu beachten sind die Indizes, mit denen die Neuronen und das BIAS in der Gewichte-
Matrix repräsentiert und auch adressiert werden. Das BIAS hat den Index 0, gefolgt
von den Eingabeneuronen, den verdeckten Neuronen und den Ausgabeneuronen.
Anschließend können die Schichten schichtweise miteinander verbunden werden.
Empfohlen wird eine systematische Schleife von der Eingabeschicht hin zur Ausgabeschicht.
for (lOutputtingLayer=0; lOutputtingLayer
Created on 02.06.2004
- Version:
- 02.06.2004
- Author:
- M. Serhat Cinar
Method Summary |
void |
connectNet(Net pNet,
double[] pParameters)
Initialisiert die Gewichtsmatrix des gegebenen Netzes mit Startwerten,
so daß das Netz verbunden (connected) ist. |
connectNet
public void connectNet(Net pNet,
double[] pParameters)
- Initialisiert die Gewichtsmatrix des gegebenen Netzes mit Startwerten,
so daß das Netz verbunden (connected) ist.
Üblicherweise besitzt ein übergebenes Netz eine Gewichtsmatrix,
die nur mit 0-Werten gefüllt ist und daher keine Verbindungen erahnen läßt.
Nach der Initialisierung sollten die Observer des Netzes benachrichtigt werden.
- Parameters:
pNet
- Das Netz, dessen Kantengewichte initialisiert werden sollen.pParameters
- Je nach Initialisierungsalgorithmus können hier verschiedene Parameter
übermittelt werden.